#include <iostream>
#include <cmath>
using namespace std;

int main() {
    string str;
    cin >> str;
    int arr[26] = { 0 };
    int my_max = 0;
    int my_min = 100;
    for (auto s : str)
    {
        arr[s - 'a']++;
    }
    for (int i = 0; i < 26; i++)
    {
        if (arr[i] > my_max)
        {
            my_max = arr[i];
        }
        if (arr[i] > 0 && arr[i] < my_min)
        {
            my_min = arr[i];
        }
    }
    int k = my_max - my_min;
    if (k == 0 || k == 1)
    {
        cout << "No Answer" << endl << 0 << endl;
        return 0;
    }
    for (int i = 2; i < sqrt(k); i++)
    {
        if (k % i == 0)
        {
            cout << "No Answer" << endl << 0 << endl;
            return 0;
        }
    }
    cout << "Lucky Word" << endl << k << endl;
    return 0;
}

//struct TreeNode {
//    int val;
//    struct TreeNode* left;
//    struct TreeNode* right;
//    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
//};
//
//class Solution {
//public:
//    bool dp(TreeNode* pRoot)
//    {
//        if (pRoot == nullptr)
//        {
//            return true;
//        }
//        int left = height(pRoot->left);
//        int right = height(pRoot->right);
//        if (abs(left - right) < 2)
//        {
//            return dp(pRoot->left) && dp(pRoot->right);
//        }
//        return false;
//    }
//
//    int height(TreeNode* pRoot)
//    {
//        if (pRoot == nullptr)
//        {
//            return 0;
//        }
//        int left = height(pRoot->left);
//        int right = height(pRoot->right);
//        return max(left, right) + 1;
//    }
//
//    bool IsBalanced_Solution(TreeNode* pRoot) {
//        // write code here
//        return dp(pRoot);
//    }
//};
//
//int main() {
//    int n;
//    string str;
//    cin >> n >> str;
//    int left = 0;
//    int right = 0;
//    int k = 0;
//    int ret = 0;
//    int arr1[2] = { 0 };
//    int arr2[2] = { 0 };
//    for (auto s : str)
//    {
//        arr1[s - '0']++;
//    }
//    while (left < n)
//    {
//        arr2[str[right] - '0']++;
//        k++;
//        while (k > (n / 2))
//        {
//            if (k > (n / 2))
//            {
//                arr2[str[left] - '0']--;
//                left++;
//                k--;
//            }
//        }
//        if (left < n && k == (n / 2) && arr1[0] - arr2[0] == arr2[0] && arr1[1] - arr2[1] == arr2[1])
//        {
//            ret++;
//        }
//        right++;
//        if (right == n)
//        {
//            right = 0;
//        }
//    }
//    cout << ret << endl;
//    return 0;
//}
//
//
//const int N = 110;
//int n;
//int dp[N][N];
//int main() {
//    int x;
//    cin >> n;
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= n; j++)
//        {
//            cin >> x;
//            dp[i][j] = dp[i - 1][j] + dp[i][j - 1] + x - dp[i - 1][j - 1];
//        }
//    }
//    int ret = -127 * N;
//    for (int x1 = 1; x1 <= n; x1++)
//    {
//        for (int y1 = 1; y1 <= n; y1++)
//        {
//            for (int x2 = x1; x2 <= n; x2++)
//            {
//                for (int y2 = y1; y2 <= n; y2++)
//                {
//                    ret = max(ret, dp[x2][y2] - dp[x1 - 1][y2] - dp[x2][y1 - 1] + dp[x1 - 1][y1 - 1]);
//                }
//            }
//        }
//    }
//    cout << ret;
//    return 0;
//}